﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class 坦克发射 : MonoBehaviour
{
    public GameObject 炮弹预制体;
    public KeyCode 发射按钮;
    public long 发射间隔 = 5000000; // 500ms
    public float 炮弹初速度 = 20;

    public GameObject 发射点;

    public AudioClip 发射音效;

    private Transform 发射位置;
    private long 上次发射时间 = 0;
    private bool 是否可以发射 = false;

    void Start()
    {
        发射位置 = 发射点.transform;
    }

    void Update()
    {
        long 当前时间 = System.DateTime.Now.Ticks;
        // Debug.Log(当前时间);

        if (当前时间 - 上次发射时间 > 发射间隔)
        {
            是否可以发射 = true;
        }

        if (Input.GetKeyDown(发射按钮))
        {
            发射炮弹();
        }
    }

    public void 发射炮弹()
    {
        if (是否可以发射 && gameObject.activeSelf)
        {
            long 当前时间 = System.DateTime.Now.Ticks;

            上次发射时间 = 当前时间;
            是否可以发射 = false;

            AudioSource.PlayClipAtPoint(发射音效, transform.position);

            var 炮弹 = Instantiate(炮弹预制体, 发射位置.position, 发射位置.rotation);
            炮弹.GetComponent<炮弹>().源射出坦克 = gameObject;
            炮弹.transform.Rotate(0, -90, 0);
            炮弹.GetComponent<Rigidbody>().velocity = 炮弹.transform.forward * 炮弹初速度;
        }
    }
}
